/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;


import java.util.List;
import javax.persistence.EntityManager;

/**
 *
 * @author igo
 */
public interface Dao {

    public EntityManager getEntityManager();

    /**
     * Recebe um objeto e o insere no banco de dados
     *
     * @param Objeto a ser inserido no banco de dados
     */
    public void create(Object Objeto);

    /**
     * Recebe um objeto e o atualiza no banco de dados
     *
     * @param Objeto a ser atualizado no banco de dados
     */
    public void edit(Object objeto);

    /**
     * Recebe o ID do objeto e o exclui do banco de dados
     *
     * @param id
     */
    public void destroy(Object id);

    /**
     *
     * @return uma lista(List<Object>) contendo todos os objetos existentes no banco
     */
    public List<Object> findObjectEntities();

    /**
     *
     * @param id
     * @return o objeto encontrado
     */
    public Object findObject(Object id);

    /**
     *
     * @param funcionario
     * @return Lista com os Objetos encontrados com os requisitos do objeto fornecido
     */
    public List pesquisar(Object objeto);

    /**
     *
     * @return o número de objetos inseridos no banco de dados
     */
    public int getObjectCount();

}
